//
//  SGHHashFind.m
//  ObjectiveCDemo20200321
//
//  Created by 远平 on 2021/11/25.
//  Copyright © 2021 远平. All rights reserved.
//

#import "SGHHashFind.h"

@implementation SGHHashFind

- (void)testWithStr:(NSString *)str {
    char chStr[100];
    memcpy(chStr, [str cStringUsingEncoding:NSUTF8StringEncoding], [str length]);
    char findCh = findFirstChar(chStr);
    printf("char:%c \n",findCh);
}

char findFirstChar(char *ch) {
    char result = '\0';
    int list[256];
    for (int i = 0; i < 256; i++) {
        list[i] = 0;
    }
    
    char *p = ch;       //p --> 数组的首地址
    /// 把testCh中的字符，以字符对应的ASCII码为下标，出现的次数为value，类似字典形式，存储在list。
    while (*p != result) {  //值不是结尾的 \0
        list[*(p++)]++;     //*p --> 取p地址上的值。
    }
    
    p = ch;             //重新赋值p为 testCh 的首地址
    while (*p != result) {
        if (list[*p] == 1) { //如果*p --> 取值出来的字符串，出现的次数为1，
            result = *p;
            break;
        }
        p++;
    }
    return result;
}

@end
